Matplotlib je Pythonovská knižnica, ktorá je určená pre kreslenie 2D/3D diagramov.
Ďalšie informácie:
Doporučená konvencia pre importovanie modulu matplotlib
:
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
Magický príkaz pre IPython %matplotlib inline
integruje knižnicu Matplotlib s webovým prostredím.
Dokumentácia:
Dokumentácia:
# vytvorenie obrázka s jedným diagramom
fig, ax = plt.subplots()
# nastavenie veľkosti obrázka
#fig.set_size_inches(6, 4) # argumenty: šírka (štandardne 6), výška (štandardne 4)
# pomenovanie diagramu
#ax.set_title("Môj prvý diagram")
# nastavenie rovnakej mierky v oboch osiach diagramu
#ax.axis('equal')
# nastavenie limit kótovania pre obe súradnicové osy
#ax.axis([1, 4, 1, 16])
# vyznačenie čiar súradnicovej siete diagramu
#ax.grid()
# samotné zobrazenie obrázka
plt.show()
# zatvorenie všetkých okien obrázka
plt.close('all')
Nakreslenie grafu jednoduchej funkčnej závislosti, ktorý odpovedá množine usporiadaných dvojíc $\{(1,1), (2,4), (3,9), (4,16)\}$.
Dokumentácia:
fig, ax = plt.subplots()
# určenie a zobrazenie funkčnej závislosti
ax.plot([1, 2, 3, 4], [1, 4, 9, 16], color='red', linestyle='', marker='o')
#ax.plot([1, 2, 3, 4], [1, 4, 9, 16], c='r', ls='', marker='o') # to isté
#ax.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro') # to isté
plt.show()
plt.close('all')
V podstate to isté ako v predchadzajúcom príklade, len je to zapísané iným spôsobom.
Dokumentácia:
# vstupné údaje ako polia typu ndarray
X = np.array([1, 2, 3, 4]) # hodnoty nezávislej premennej
Y = X ** 2 # hodnoty závislej premennej, ekvivalentné príkazu Y = np.array([1, 4, 9, 16])
fig, ax = plt.subplots()
ax.plot(X, Y, 'b--s')
# pomenovanie 1. súradnicovej osi
ax.set_xlabel('nezávislá premenná')
# pomenovanie 2. súradnicovej osi
ax.set_ylabel('závislá premenná')
# nastavenie kótovania pre 1. súradnicovú os
ax.set_xticks([1, 2, 3, 4])
# nastavenie kótovania pre 2. súradnicovú os
ax.set_yticks([4, 8, 12, 16])
plt.show()
plt.close('all')
Obrázok s dvoma grafmi v tom istom diagrame.
# vstupné údaje pre oba grafy
X = np.array([1, 2, 3, 4]) # hodnoty nezávislej premennej
Y1 = 4 * X - 2 # hodnoty závislej premennej pre 1. graf
Y2 = X ** 2 # hodnoty závislej premennej pre 2. graf
fig, ax = plt.subplots()
# dva grafy v jednom diagrame
ax.plot(X, Y1, 'k-o', mfc='w')
ax.plot(X, Y2, 'g:.')
#ax.plot(X, Y1, 'k-o', X, Y2, 'g:.') # alternatívny zápis
ax.set_xticks([1, 2, 3, 4])
ax.set_yticks([4, 8, 12, 16])
plt.show()
plt.close('all')
V nasledujúcich príkladoch si ukážeme, ako vytvoriť obrázok, ktorý obsahuje viac než jeden diagram.
Dokumentácia:
# vstupné údaje
X = np.array([1, 2, 3, 4])
Y1 = 4 * X - 2
Y2 = X ** 2
# vytvorenie obrázka s dvoma diagramami, každý z nich je v inom stĺpci
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(12, 4)
ax1.plot(X, Y1, 'r-o')
ax2.plot(X, Y2, 'b--s')
# nastavenie zdielaného kótovania na 1. súradnicovej osi
#plt.xticks([1, 2, 3, 4])
# nastavenie zdielaného kótovania na 2. súradnicovej osi
#plt.yticks([4, 8, 12, 16])
plt.show()
plt.close('all')
# vstupné údaje
X = np.array([1, 2, 3, 4])
Y1 = 4 * X - 2
Y2 = X ** 2
# vytvorenie obrázka s dvoma diagramami, každý z nich je v inom riadku
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, sharex=True, sharey=True)
fig.set_size_inches(6, 8)
ax1.plot(X, Y1, 'r-o')
ax2.plot(X, Y2, 'b--s')
# nastavenie zdielaného kótovania na 1. súradnicovej osi
#plt.xticks([1, 2, 3, 4])
# nastavenie zdielaného kótovania na 2. súradnicovej osi
#plt.yticks([4, 8, 12, 16])
plt.show()
plt.close('all')
# vstupné údaje
X = np.array([1, 2, 3, 4])
Y1 = 4 * X - 2
Y2 = X ** 2
# vytvorenie obrázka so 6 diagramami umiestnených do 2 riadkov a 3 stĺpcov
fig, ((ax11, ax12, ax13), (ax21, ax22, ax23)) = plt.subplots(nrows=2, ncols=3, sharex=True, sharey=True)
fig.set_size_inches(18, 8)
# prvý riadok
ax11.plot(X, Y1, 'r-')
ax12.plot(X, Y1, 'b--o')
ax13.plot(X, Y1, 'g:s')
# druhý riadok
ax21.plot(X, Y1, 'k-')
ax22.plot(X, Y1, 'k--o')
ax23.plot(X, Y1, 'k:s')
# nastavenie zdielaného kótovania na 1. súradnicovej osi
#plt.xticks([1, 2, 3, 4])
# nastavenie zdielaného kótovania na 2. súradnicovej osi
#plt.yticks([4, 8, 12, 16])
plt.show()
plt.close('all')